#ifndef ACTIVE_H_INCLUDED
#define ACTIVE_H_INCLUDED

#include "Thread.h"
#include <windows.h>

class ActiveObject
{
public:
    ActiveObject ();
    virtual ~ActiveObject () {}
    void Kill ();

protected:
    virtual void InitThread () = 0;
    virtual void Run () = 0;
    virtual void FlushThread () = 0;

    static DWORD WINAPI ThreadEntry (void *pArg);
    int             _isDying;
    Win::Thread     _thread;
};


#endif // ACTIVE_H_INCLUDED
